动态规划问题之求解数列中递增数列的长度

最近在准备面试,当然算法是必不可少的,但是自己平常做的更多的是工程方面的东西,涉及到的最多就是数据结构浅层的东西,还没有花很大的精力来研究算法,但是面试中算法肯定是不可缺少的,所以这几天一直在恶补算法,今天看 算法导论 时看到了动态规划算法,看书怎么也看不懂,于是乎上网搜了一下,结果搜到了知乎上的结果,见知乎之关于动态规划问题的探讨感觉前两位朋友说的实在是太赞了,不仅是帮我理解了动态规划算法的思想和本质,帮我区分开了递推,贪心,动态规划和搜索的不同,更重要的是他们让我在认识问题上上升到了一个新的高度,即从状态和状态转换来认识IT问题,这实在是太精辟了,很多时候我们解决不了问题就是因为我们看待问题的角度不对,果然思想的高度才是真正的高度啊!!!


下面先总结一下我从上述两位知乎网友的回答中收获的心得:

  • 把问题描述的更”IT“一些,也就是用更接近数学和计算机的语言来把原来的实际问题抽象化,这样很有利于我们用更清晰的思路去解决问题
  • 在上述进一步抽象的问题描述中找准状态和状态之间的转化关系
  • 关于上面说的几种算法思想的区分,这里引用一下上述知乎网友@王勐的回答:
    • 每个阶段只有一个状态—>递推(例如Fibonacci数列)
    • 每个阶段的最优状态都是由上一个阶段的最优状态得到的—>贪心(例如背包问题)
    • 每个阶段的最优状态是由之前所有状态的组合得到的—>搜
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值